M365 onboarding with Location-Based Routing and Custom Networks
The M365 onboarding with LBR and Custom Networks is shown below. Variables highlighted in orange should be changed according to customer deployment. The custom script arguments used in this script are:
■ | IP-Network |
■ | IP-SubnetBits |
■ | Trusted-IP-Network |
■ | Trusted-IP-SubnetBits |
Copy
bypass
# Begin of Microsoft onboarding script
# Addition for Location based routing
# Script variables
[String]$OnlinePstnGateway="{{SBC.OnlinePstnGateway}}"
[String]$CustomerId="{{SBC.SbcSiteName}}"
[String]$IPNetwork="{{CustomVar.IP-Network}}"
[String]$IPSubnet="{{CustomVar.IP-SubnetBits}}"
[String]$TrustedIPNetwork="{{CustomVar.Trusted-IP-Network}}"
[String]$TrustedIPSubnet="{{CustomVar.Trusted-IP-SubnetBits}}"
# PSTN Gateway Variables
[Int]$SipSignalingPort=5061
[Int]$MaxConcurrentSessions=100
# Add Network region if not exists
if(Get-CsTenantNetworkRegion | Where-Object {$_.Identity -eq "India"})
{
continue
}else {
New-CsTenantNetworkRegion -NetworkRegionID "India";
}
# Add Network Site if not exists
if(Get-CsTenantNetworkSite | Where-Object {$_.Identity -like "{{SBC.SbcSiteName}}"})
{
continue
}else {
New-CsTenantNetworkSite -NetworkSiteID "{{SBC.SbcSiteName}}" -NetworkRegionID "India" -EnableLocationBasedRouting $true -Description "Default Site created by AudioCodes LiveCloud";
}
# Add example subnet to the network site
if(Get-CsTenantNetworkSubnet | Where-Object {$_.Identity -like "{{CustomVar.IP-Network}}"})
{
continue
}else {
New-CsTenantNetworkSubnet -SubnetID "{{CustomVar.IP-Network}}" -MaskBits "{{CustomVar.IP-SubnetBits}}" -NetworkSiteID "{{SBC.SbcSiteName}}" -Description "Subnet set by AudioCodes LiveCloud";
}
# Add example trusted IP address
if(Get-CsTenantTrustedIPAddress | Where-Object {$_.Identity -like "{{CustomVar.Trusted-IP-Network}}"})
{
continue
}else {
New-CsTenantTrustedIPAddress -IPAddress "{{CustomVar.Trusted-IP-Network}}" -MaskBits "{{CustomVar.Trusted-IP-SubnetBits}}" -Description "Trusted IP Address set by AudioCodes LiveCloud";
}
# Add OnlinePSTNGateway
if(Get-CsOnlinePSTNGateway | Where-Object {$_.Identity -like "{{SBC.OnlinePstnGateway}}"})
{
continue
}else {
# The line below might require customization based on the customer needs, like a change in the SipSignalingPort or attributes needs to be added like MaxConcurrentSessions
New-CsOnlinePstnGateway -Fqdn "{{SBC.OnlinePstnGateway}}" -Enabled $true -SipSignalingPort $SipSignalingPort -ForwardCallHistory $True -ForwardPai $True -MediaBypass $True -MaxConcurrentSessions $MaxConcurrentSessions -GatewaySiteLbrEnabled $true –GatewaySiteID "{{SBC.SbcSiteName}}" ;
}
# Create CallingPolicy named UMPPreventTollBypass
if(Get-CsTeamsCallingPolicy | Where-Object {$_.Identity -like "Tag:UMPPreventTollBypass"})
{
continue
}else {
New-CsTeamsCallingPolicy -Identity "UMPPreventTollBypass" -AllowCallForwardingToPhone $True -Description "Allow Teams calling, preventing toll bypass" -PreventTollBypass $True;
}
# End addition for Location based routing
# From original onboarding script
# Add PSTN Usage record Unrestricted if not exists
if(Get-CsOnlinePstnUsage | Where-Object Usage -NotContains "Unrestricted")
{
Set-CsOnlinePstnUsage -Identity Global -Usage @{Add="Unrestricted"};
}
# Add Online Voice Route Unrestricted if not exists, else add additional PSTN Gateway to the OnlinePstnGatewayList if there is a new PSTN Gateway
if(Get-CsOnlineVoiceRoute | Where-Object {$_.Identity -eq "Unrestricted"})
{
Write-host "The CsOnlineVoiceRoute named Unrestricted already exists."
if(Get-CsOnlineVoiceRoute -Identity "Unrestricted" | Where-Object {$_.OnlinePstnGatewayList -NotContains "{{SBC.OnlinePstnGateway}}"})
{
Write-host "A new PSTN Gateway is added to the the OnlinePstnGatewayList."
Set-CsOnlineVoiceRoute -Identity "Unrestricted" -OnlinePstnGatewayList @{add="{{SBC.OnlinePstnGateway}}"}
}
}else {
Write-host "The CsOnlineVoiceRoute named Unrestricted does not exist, creating one."
New-CsOnlineVoiceRoute -Identity "Unrestricted" -NumberPattern ".*" -OnlinePstnGatewayList @{add="{{SBC.OnlinePstnGateway}}"} -Priority 1 -OnlinePstnUsages @{add="Unrestricted"};
}
# Add Voice Routing Policy Unrestricted if not exists
if(Get-CsOnlineVoiceRoutingPolicy | Where-Object {$_.Identity -like "Tag:Unrestricted"})
{
continue
}else {
New-CsOnlineVoiceRoutingPolicy -Identity "Unrestricted" -OnlinePstnUsages "Unrestricted";
}
# End of M365 onboarding script
;
When this script is selected in the Onboarding wizard, the Customer Variables pane opens.
Configure the variables as described in the table below.
Customer Variables | Values |
---|---|
IP-Network | Network IPv4 IP address |
IP-SubnetBits | For example, 24. |
Trusted-IP-Network | Trusted IP address range |
Trusted-IP-SubnetBits | IP subnetBits for this range (32 if only a single IP address) |